/**
 * ReportGear(2011)
 */
package com.reportgear.core.api;

/**
 * 对象包含一个值对象，并且值是可设置与清除的
 * 
 * @version 1.0 2011-3-9
 * @author <a herf="lexloo@gmail.com">lexloo</a>
 * @since Report 1.0
 */
public interface Valueable<T> {
	/**
	 * 获取值
	 * 
	 * @return 值
	 */
	public T getValue();

	/**
	 * 设置值
	 * 
	 * @param value
	 *            值
	 */
	public void setValue(T value);

	/**
	 * 值是否为空
	 * 
	 * @return 值是否为空
	 */
	public boolean isEmpty();

	/**
	 * 清空值
	 */
	public void clear();
}
